package com.easydisk.file.model.vo;

import com.easydisk.common.serializer.Date2StringSerializer;
import com.easydisk.user.ShareUserInfoVO;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 分享链接详情返回实体
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "分享链接详情返回实体")
public class UserShareDetailVO implements Serializable {

    private static final long serialVersionUID = 5467063905263311932L;

    /**
     * 分享id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("分享id")
    private Long shareId;

    /**
     * 分享名称
     */
    @ApiModelProperty("分享名称")
    private String shareName;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonSerialize(using = Date2StringSerializer.class)
    private Date createTime;

    /**
     * 分享有效天数（永久有效为0）
     */
    @ApiModelProperty("分享有效天数（永久有效为0）")
    private Integer shareDay;

    /**
     * 分享结束时间
     */
    @ApiModelProperty("分享结束时间")
    @JsonSerialize(using = Date2StringSerializer.class)
    private Date shareEndTime;

    /**
     * 分享的文件列表
     */
    @ApiModelProperty("分享的文件列表")
    private List<UserFileVO> userFileVOList;

    /**
     * 分享者信息
     */
    @ApiModelProperty("分享者信息")
    private ShareUserInfoVO shareUserInfoVO;

}